home *** CD-ROM | disk | FTP | other *** search
/ Aminet 6 / Aminet 6 - June 1995.iso / Aminet / dev / e / capus2.lha / capus2 / WhatView / Sources / WhatViewMessage.e < prev    next >
Encoding:
Text File  |  1995-04-03  |  10.2 KB  |  306 lines

  1. /*"p_LookAllMessage()"*/
  2. PROC p_LookAllMessage() HANDLE 
  3. /*===============================================================================
  4.  = Para         : NONE
  5.  = Return       : ER_NONE if ok,else the error.
  6.  = Description  : Look all Messages
  7.  ==============================================================================*/
  8.     DEF sigreturn
  9.     DEF wvport:PTR TO mp
  10.     DEF tp
  11.     DEF infoport:PTR TO mp
  12.     IF info_window THEN infoport:=info_window.userport ELSE infoport:=NIL
  13.     IF wv_window THEN wvport:=wv_window.userport ELSE wvport:=NIL
  14.     dWriteF(['p_LookAllMessage()\n'],0)
  15.     sigreturn:=Wait(Shl(1,wvport.sigbit) OR
  16.                     Shl(1,prgport.sigbit) OR 
  17.                     Shl(1,nreqsig) OR 
  18.                     Shl(1,publicport.sigbit) OR 
  19.                     Shl(1,infoport.sigbit) OR
  20.                     Shl(1,dummyport.sigbit) OR
  21.                     cxsigflag OR $F000)
  22.     IF (sigreturn AND Shl(1,wvport.sigbit))
  23.         IF p_LookwvMessage()=TRUE THEN p_CloseWindow()
  24.     ENDIF
  25.     IF (sigreturn AND Shl(1,prgport.sigbit))
  26.         p_LookAppMessage()
  27.         IF defact=-1
  28.             IF wv_window=NIL 
  29.                 Raise(p_OpenWindow()) 
  30.             ELSE 
  31.                 ActivateWindow(wv_window)
  32.                 WindowToFront(wv_window)
  33.             ENDIF
  34.         ELSE
  35.             p_DoAction(defact)
  36.             IF wv_window<>NIL THEN p_CloseWindow()
  37.         ENDIF
  38.     ENDIF
  39.     IF (sigreturn AND Shl(1,nreqsig))
  40.         p_ReadPrefsFile('Env:Whatview.prefs')
  41.     ENDIF
  42.     IF (sigreturn AND Shl(1,publicport.sigbit))
  43.         p_LookPublicMessage()
  44.     ENDIF
  45.     IF (sigreturn AND cxsigflag)
  46.         p_LookCxMessage()
  47.     ENDIF
  48.     IF (sigreturn AND $F000)
  49.         reelquit:=TRUE
  50.     ENDIF
  51.     IF (sigreturn AND Shl(1,infoport.sigbit))
  52.         IF p_LookinfoMessage()=TRUE THEN p_CloseInfoWindow()
  53.     ENDIF
  54.     IF (sigreturn AND Shl(1,dummyport.sigbit))
  55.         dWriteF(['Reponse WBSart-Handler\n'],[0])
  56.     ENDIF
  57.     Raise(ER_NONE)
  58. EXCEPT
  59.     RETURN exception
  60. ENDPROC
  61. /**/
  62. /*"p_LookPublicMessage()"*/
  63. PROC p_LookPublicMessage() 
  64. /*===============================================================================
  65.  = Para         : NONE
  66.  = Return       : NONE
  67.  = Description  : Parse Message on public port
  68.  ==============================================================================*/
  69.     DEF mymsg:PTR TO wvmsg
  70.     DEF stract[256]:STRING
  71.     DEF doit=-1
  72.     DEF l=NIL,ret
  73.     dWriteF(['p_LookPublicMessage()\n'],0)
  74.     WHILE mymsg:=GetMsg(publicport)
  75.         StringF(stract,'\s',mymsg.name)
  76.         l:=mymsg.lock
  77.         dWriteF(['Lock \h\n'],[l])
  78.         IF l=0
  79.             IF StrCmp(stract,'WHATVIEW',8) THEN doit:=ACT_WHATVIEW
  80.             IF StrCmp(stract,'INFO',4) THEN doit:=ACT_INFO
  81.             IF StrCmp(stract,'ADDICON',7) THEN doit:=ACT_ADDICON
  82.             IF StrCmp(stract,'EXECUTE',7) THEN doit:=ACT_EXECUTE
  83.             IF StrCmp(stract,'QUIT',4) 
  84.                 reelquit:=TRUE
  85.                 JUMP allok
  86.             ENDIF
  87.             IF StrCmp(stract,'FLUSH',5)
  88.                 p_FlushWhatis()
  89.                 JUMP allok
  90.             ENDIF
  91.             IF StrCmp(stract,'PREFS',5)
  92.                 ret:=p_MakeWVRequest('Préférences','WV_Prefs|What_IsPrefs|_Cancel',0)
  93.                 SELECT ret
  94.                     CASE 1
  95.                         p_CLIRun('WVprefs',defprefsdir,4000,0)
  96.                     CASE 2
  97.                         p_CLIRun('WhatIsPrefs',defprefsdir,4000,0)
  98.                 ENDSELECT
  99.                 JUMP allok
  100.             ENDIF
  101.         ENDIF
  102.         IF doit<>-1
  103.             p_DoAction(doit)
  104.             JUMP allok
  105.         ELSE
  106.             /*p_AjouteArgNode(myw.adremptylist,mymsg.name,mymsg.lock)*/
  107.             p_AjouteArgNode(myw.adremptylist,mymsg.name,l)
  108.         ENDIF
  109.         allok:
  110.         ReplyMsg(mymsg)
  111.     ENDWHILE
  112. ENDPROC
  113. /**/
  114. /*"p_LookAppMessage()"*/
  115. PROC p_LookAppMessage() HANDLE 
  116. /*===============================================================================
  117.  = Para         : NONE
  118.  = Return       : NONE
  119.  = Description  : Parse Msg on App
  120.  ==============================================================================*/
  121.     DEF appmsg:PTR TO appmessage
  122.     DEF b
  123.     DEF apparg:PTR TO wbarg
  124.     DEF reelname[80]:STRING,reellock
  125.     dWriteF(['p_LookAppMessage()\n'],0)
  126.     WHILE appmsg:=GetMsg(prgport)
  127.         apparg:=appmsg.arglist
  128.         FOR b:=0 TO appmsg.numargs-1
  129.             StringF(reelname,'\s',apparg[b].name)
  130.             reellock:=apparg[b].lock
  131.             /*p_AjouteArgNode(myw.adremptylist,apparg[b].name,apparg[b].lock)*/
  132.             p_AjouteArgNode(myw.adremptylist,reelname,reellock)
  133.         ENDFOR
  134.         ReplyMsg(appmsg)
  135.     ENDWHILE
  136.     Raise(ER_NONE)
  137. EXCEPT
  138.     RETURN exception
  139. ENDPROC
  140. /**/
  141. /*"p_LookwvMessage()"*/
  142. PROC p_LookwvMessage() 
  143. /*===============================================================================
  144.  = Para         : NONE
  145.  = Return       : TRUE when window is closed,else false.
  146.  = Description  : Look message on Window
  147.  ==============================================================================*/
  148.    DEF mes:PTR TO intuimessage
  149.    DEF g:PTR TO gadget
  150.    DEF type=0,infos=NIL,ret=FALSE,r
  151.    WHILE mes:=Gt_GetIMsg(wv_window.userport)
  152.        type:=mes.class
  153.        dWriteF(['p_LookwvMessage() \d\n'],[type])
  154.        SELECT type
  155.            CASE IDCMP_MENUPICK
  156.               infos:=mes.code
  157.               SELECT infos
  158.               ENDSELECT
  159.            CASE IDCMP_CLOSEWINDOW
  160.               ret:=TRUE
  161.            CASE IDCMP_GADGETUP
  162.               g:=mes.iaddress
  163.               infos:=g.gadgetid
  164.               dWriteF(['p_LookwvMessage() Gad \d\n'],[infos])
  165.               SELECT infos
  166.                   CASE GA_G_WHATVIEW
  167.                       ret:=TRUE
  168.                       p_DoAction(ACT_WHATVIEW)
  169.                   CASE GA_G_INFO
  170.                       ret:=TRUE
  171.                       p_DoAction(ACT_INFO)
  172.                   CASE GA_G_ADDICON
  173.                       ret:=TRUE
  174.                       p_DoAction(ACT_ADDICON)
  175.                   CASE GA_G_EXECUTE
  176.                       ret:=TRUE
  177.                       p_DoAction(ACT_EXECUTE)
  178.                   CASE GA_G_PREFS
  179.                       ret:=TRUE
  180.                       r:=p_MakeWVRequest('Préférences','WV_Prefs|What_IsPrefs|_Cancel',0)
  181.                       SELECT r
  182.                         CASE 1
  183.                             p_CLIRun('WVprefs',defprefsdir,4000,0)
  184.                         CASE 2
  185.                           p_CLIRun('WhatIsPrefs',defprefsdir,4000,0)
  186.                       ENDSELECT
  187.                   CASE GA_G_QUIT
  188.                       ret:=TRUE
  189.                       reelquit:=TRUE
  190.               ENDSELECT
  191.            CASE IDCMP_RAWKEY
  192.                infos:=mes.code
  193.                SELECT infos
  194.                    CASE $31 /* WHATVIEW */
  195.                        ret:=TRUE
  196.                        p_DoAction(ACT_WHATVIEW)
  197.                     CASE $17 /* INFO */
  198.                        ret:=TRUE
  199.                        p_DoAction(ACT_INFO)
  200.                     CASE $10 /* ADDICON */
  201.                        ret:=TRUE
  202.                        p_DoAction(ACT_ADDICON)
  203.                     CASE $12 /* EXECUTE */
  204.                        ret:=TRUE
  205.                        p_DoAction(ACT_EXECUTE)
  206.                     CASE $19 /* PREFS */
  207.                        ret:=TRUE
  208.                        r:=p_MakeWVRequest('Préférences','WVPrefs|WhatIsPrefs|Cancel',0)
  209.                        SELECT r
  210.                             CASE 1
  211.                                 p_CLIRun('WVprefs',defprefsdir,4000,0)
  212.                             CASE 2
  213.                                 p_CLIRun('WhatIsPrefs',defprefsdir,4000,0)
  214.                        ENDSELECT
  215.                     CASE $20 /* QUIT */
  216.                        reelquit:=TRUE
  217.                ENDSELECT
  218.        ENDSELECT
  219.        Gt_ReplyIMsg(mes)
  220.    ENDWHILE
  221.    RETURN ret
  222. ENDPROC
  223. /**/
  224. /*"p_LookCxMessage()"*/
  225. PROC p_LookCxMessage() 
  226.     DEF sigrcvd=NIL,msgid=NIL,msgtype=NIL
  227.     DEF returnvalue=TRUE,ret
  228.     WHILE msg:=GetMsg(broker_mp) 
  229.         msgid:=CxMsgID(msg)
  230.         msgtype:=CxMsgType(msg) 
  231.         SELECT msgtype 
  232.             CASE CXM_IEVENT 
  233.                 SELECT msgid 
  234.                     CASE EVT_HOTKEY_WV
  235.                         IF wv_window=NIL
  236.                             p_OpenWindow() 
  237.                         ELSE
  238.                             p_CloseWindow() 
  239.                         ENDIF 
  240.                     CASE EVT_HOTKEY_PREFS
  241.                         ret:=p_MakeWVRequest('Préférences','WV_Prefs|What_IsPrefs|_Cancel',0)
  242.                         SELECT ret
  243.                             CASE 1
  244.                                 p_CLIRun('WVprefs',defprefsdir,4000,0)
  245.                             CASE 2
  246.                                 p_CLIRun('WhatIsPrefs',defprefsdir,4000,0)
  247.                         ENDSELECT
  248.                 ENDSELECT 
  249.             CASE CXM_COMMAND 
  250.                 SELECT msgid
  251.                     CASE CXCMD_KILL 
  252.                         reelquit:=TRUE 
  253.                         returnvalue:=FALSE 
  254.                     CASE  CXCMD_DISABLE 
  255.                         ActivateCxObj(broker,0) 
  256.                     CASE CXCMD_ENABLE
  257.                         ActivateCxObj(broker,1) 
  258.                     CASE CXCMD_APPEAR 
  259.                         IF wv_window=NIL
  260.                             p_OpenWindow() 
  261.                         ELSE 
  262.                             WindowToFront(wv_window)
  263.                         ENDIF 
  264.                     CASE CXCMD_DISAPPEAR 
  265.                         IF wv_window<>NIL
  266.                             p_CloseWindow() 
  267.                         ENDIF 
  268.                 ENDSELECT
  269.         ENDSELECT
  270.         ReplyMsg(msg)
  271.     ENDWHILE
  272. ENDPROC
  273. /**/
  274. /*"p_LookinfoMessage()"*/
  275. PROC p_LookinfoMessage() 
  276.    DEF mes:PTR TO intuimessage
  277.    DEF g:PTR TO gadget
  278.    DEF gstr:PTR TO stringinfo
  279.    DEF type=0,infos=NIL,ret=FALSE
  280.    dWriteF(['p_LookinfoMessage() \d\n'],[type])
  281.    WHILE mes:=Gt_GetIMsg(info_window.userport)
  282.        type:=mes.class
  283.        SELECT type
  284.            CASE IDCMP_MENUPICK
  285.               infos:=mes.code
  286.               SELECT infos
  287.               ENDSELECT
  288.            CASE IDCMP_CLOSEWINDOW
  289.                ret:=TRUE
  290.            CASE IDCMP_GADGETUP
  291.               g:=mes.iaddress
  292.               infos:=g.gadgetid
  293.               SELECT infos
  294.                   /*CASE GA_G_INFORM*/
  295.               ENDSELECT
  296.            CASE IDCMP_RAWKEY
  297.                infos:=mes.code
  298.                SELECT infos
  299.                ENDSELECT
  300.        ENDSELECT
  301.        Gt_ReplyIMsg(mes)
  302.    ENDWHILE
  303.    RETURN ret
  304. ENDPROC
  305. /**/
  306.